package org.atlantis.grosbeak.depot.desc;

/**
 * 对象中值的描述。值可以是对象构造方法中的参数，也可以是一个字段的值。 值从两个方面来描述：
 * <ul>
 * <li>type：值的类型</li>
 * <li>value：真实的值</li>
 * </ul>
 * <b>注：值的类型并不是：String、int、double、Object等Java中的类型，而是在容器中的类型。</b><br>
 * 对值的类型和真实值的说明：
 * <ol>
 * <li>如果type为“null”，那么value也会为null。</li>
 * <li>如果value为字符串、数字、布尔、数组、Collection、Map，那么type应该为“noraml”或“null”。</li>
 * <li>如果value为ObjectDesc，那么表示该值是一个内部匿名对象，type应该为“inner”或“null”。</li>
 * <li>如果value为字符串，且表示另外一个对象在容器中的ID，那么type应该为“refer”。</li>
 * <li>如果value为字符串，且表示一个环境变量，那么type应该为“env”。</li>
 * <li>如果value为字符串，且表示一个文件的路径，那么type应该为“file”。</li>
 * <li>如果value为字符串，且表示一个Java的调用，那么type应该为“java”。</li>
 * </ol>
 * 
 * @author <a href="mailto:seenoevil.cn@gmail.com">SeeNoEvil</a>
 * 
 */
public class ValueDesc {

	private String type;
	private Object value;

	public String getType() {
		return type;
	}

	public void setType(String type) {
		this.type = type;
	}

	public Object getValue() {
		return value;
	}

	public void setValue(Object value) {
		this.value = value;
	}
}
